package cn.bxshey.commonModule.exception;

import cn.bxshey.commonModule.enums.ResultEnum;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * @作者：不想说话而已
 * @Date：2024/3/10 1:55
 *  自定义业务异常  可能出现异常的业务中使用
 *  使用方式  try的方式  或其他方式使用
 *  EqualsAndHashCode注解: 在使用Data的时候，会自动添加，默认为false
 *  如：使用equals、等比较方法
 *  false: 子类在继承父类的同时，两个对象进行比较的时候，只要求两个对象的子类对象相等，才相等
 *  true: 子类在继承父类的同时，两个对象进行比较的时候，必须要求两个对象的子类与父类对相等，才相等
 **/
@EqualsAndHashCode(callSuper = true)
@Data
public class BusinessException extends RuntimeException{
    private Integer code;
    private String args; //请求参数
    private Exception exception; //异常


    public BusinessException(Integer code, String message) {
        super(message);
        this.code=code;
    }
    public BusinessException(ResultEnum resultEnum) {
        super(resultEnum.msg);
        this.code=resultEnum.code;
    }

    public BusinessException(Integer code, String message, String args, Throwable cause) {
        super(message,cause);
        this.code=code;
        this.args=args;
    }

    public BusinessException(Integer code, String args, Exception exception) {
        this.code=code;
        this.args=args;
        this.exception=exception;
    }

    public BusinessException(ResultEnum resultEnum, Exception exception) {
        super(resultEnum.msg);
        this.code=resultEnum.code;
        this.exception=exception;
    }


}